home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / COMAL / B-Book Series / (k)b6.d64 / accept.l next >
Text File  |  2007-02-28  |  1KB  |  62 lines

  1. 9000 PROC ACCEPT(PROMPT$,VALID$,REF REPLY$,MAX) CLOSED
  2. 9010 Z:=ZONE
  3. 9020 ZONE 0
  4. 9030 PRINT PROMPT$
  5. 9040 PRINT "[ñ",
  6. 9050 FOR X:=2 TO MAX DO PRINT " ",
  7. 9060 PRINT "]",
  8. 9070 FOR X:=1 TO MAX+1 DO PRINT "¥",
  9. 9080 FETCH(REPLY$,VALID$,MAX)
  10. 9090 PRINT 
  11. 9100 ZONE Z
  12. 9110 ENDPROC ACCEPT
  13. 9120 //
  14. 9130 PROC FETCH(REF A$,V$,MAX) CLOSED
  15. 9140 DIM VALID$ OF 80, B$ OF 1
  16. 9150 Z:=ZONE
  17. 9160 ZONE 0
  18. 9170 A$:=""
  19. 9180 CASE V$ OF
  20. 9190 WHEN "A"
  21. 9200 VALID$:="ABCDEFGHIJKLMNOPQRSTUVWXYZ ┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌,."
  22. 9210 WHEN "D"
  23. 9220 VALID$:="0123456789"
  24. 9230 WHEN "B"
  25. 9240 VALID$:="ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌,."
  26. 9250 OTHERWISE 
  27. 9260 VALID$:=V$
  28. 9270 ENDCASE 
  29. 9280 DONE:=FALSE; NUM:=0
  30. 9290 REPEAT 
  31. 9300 GET'VALID(B$,VALID$+CHR$(13)+CHR$(20))
  32. 9310 CASE B$ OF
  33. 9320 WHEN CHR$(13)
  34. 9330 DONE:=TRUE
  35. 9340 WHEN CHR$(20)
  36. 9350 IF NUM THEN
  37. 9360 NUM:-1
  38. 9370 IF NUM=MAX-1 THEN
  39. 9380 PRINT "¥ñ¥",
  40. 9390 ELSE 
  41. 9400 PRINT " ¥¥ñ¥",
  42. 9410 ENDIF 
  43. 9420 A$:=A$(1:NUM)
  44. 9430 ENDIF 
  45. 9440 OTHERWISE 
  46. 9450 IF NUM<MAX THEN
  47. 9460 A$:=A$+B$
  48. 9470 NUM:+1
  49. 9480 PRINT B$;"¥ñ¥",
  50. 9490 IF NUM=MAX THEN PRINT "]¥",
  51. 9500 ENDIF 
  52. 9510 ENDCASE 
  53. 9520 UNTIL DONE
  54. 9530 ZONE Z
  55. 9540 ENDPROC FETCH
  56. 9550 //
  57. 9560 PROC GET'VALID(REF C$,VALID$) CLOSED
  58. 9570 REPEAT 
  59. 9580 C$:=KEY$
  60. 9590 UNTIL C$ IN VALID$
  61. 9600 ENDPROC GET'VALID
  62.